package com.hk.commons.fonts;


import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.springframework.core.io.ClassPathResource;

import java.awt.*;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public abstract class FontUtils {

    /**
     * PingFang-SC-bold 字体
     */
    private static final Font PINGFANG_SC_BOLD;

    static {
        try {
            PINGFANG_SC_BOLD = Font.createFont(Font.PLAIN, new ClassPathResource("fonts/PingFang-SC-bold.ttf").getInputStream());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public static Font getPingFangSCBold() {
        return FontUtils.PINGFANG_SC_BOLD;
    }

    /**
     * 返回字体加粗的指定格式
     *
     * @param size  字体大小
     */
    public static Font getPingFangSCBold(int size) {
        return FontUtils.PINGFANG_SC_BOLD.deriveFont(Font.BOLD, size);
    }

    /**
     * 返回普通风格字体的指定格式
     *
     * @param size  字体大小
     */
    public static Font getPingFangSCPlain(int size) {
        return FontUtils.PINGFANG_SC_BOLD.deriveFont(Font.PLAIN, size);
    }

    /**
     * 返回斜体字体的指定格式
     *
     * @param size  字体大小
     */
    public static Font getPingFangSCItalic(int size) {
        return FontUtils.PINGFANG_SC_BOLD.deriveFont(Font.ITALIC, size);
    }

}
